package patronMementoo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

import patronBuilder.ControladorVentanaAtributo;
import patronMementoo.Cliente.Memento;

import modelo.ClienteDAO;


public class ControladorCliente extends ControladorVentanaAtributo{
	private NewJDialogRegistrarCliente clien;
	private Memento memento;
	private Cliente cl = new Cliente();
	
	public ControladorCliente() {
		super();
	}
	@Override
	public void mostrar() {
		clien = new NewJDialogRegistrarCliente (null, this);
		
		clien.getjBtoAgregar().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (clien.getjTxtApellido().getText().isEmpty() ||
						clien.getjTxtCedula().getText().isEmpty()||
						 clien.getjTxtNombre().getText().isEmpty() ||
						  clien.getjTxtTelefono().getText().isEmpty()) {
						JOptionPane.showMessageDialog(null, "Rellene los campos de textos.");
						return;
					}
				ClienteDAO cdao = new ClienteDAO();
				cdao.registrarCliente((new Cliente(clien.getjTxtCedula().getText(), clien.getjTxtNombre().getText(),clien.getjTxtApellido().getText(),Double.parseDouble(clien.getjTxtTelefono().getText()))));
				clien.dispose();
				JOptionPane.showMessageDialog(null, " Cliente registrado", "Informacion", JOptionPane.INFORMATION_MESSAGE);
			}
		});
		clien.setVisible(true);
		clien.getJBtoClientBuscar().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				ClienteDAO dao = new ClienteDAO();		
				
				Cliente cl = dao.ConsultarCliente(clien.getjTxtCedula().getText()); 
				if (cl == null){
					JOptionPane.showMessageDialog(null, "No existe.");
				clien.getjBtoAgregar().setEnabled(true);
				}
				else {
					clien.getjBtoAgregar().setEnabled(false);
					clien.getjTxtNombre().setText(cl.getNombre());
					clien.getjTxtApellido().setText(cl.getApellido());
					clien.getjTxtTelefono().setText(Double.toString((cl.getTelefono())));
					
				}
			}
		});
		clien.getjBtoSalir().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				clien.dispose();
			}
		});
		clien.getjButtonguadarestado().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				cl.setCedula(clien.getjTxtCedula().getText());
				cl.setNombre(clien.getjTxtNombre().getText());
				cl.setApellido(clien.getjTxtApellido().getText());
				cl.setTelefono(Double.parseDouble(clien.getjTxtTelefono().getText()));
				memento = cl.guardarEstado();
			}
		});
		clien.getjButtonrecuperarestado().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				cl.restaurarEstado(memento);
				clien.getjTxtCedula().setText(cl.getCedula());
				clien.getjTxtNombre().setText(cl.getNombre());
				clien.getjTxtApellido().setText(cl.getApellido());
				clien.getjTxtTelefono().setText(String.valueOf(cl.getTelefono()));
			}
		});
	
		clien.setVisible(true);
	}

}	
	
